package cn.distribution.groupManager.mapper;

import cn.distribution.groupManager.entity.dao.GroupManagerDAO;
import cn.distribution.groupManager.entity.vo.GroupManagerVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
 * 群组数据类
 * @author zhengminjie
 */
@Mapper
public interface GroupManagerMapper extends BaseMapper<GroupManagerDAO> {

    /**
     * 通过群号得到群id
     * @param groupNum 群号
     * @return Long
     */
    Long getIdByNum(@Param("groupNum") Long groupNum);

    /**
     *  通过群号得到群昵称
     * @param groupNum 群号
     * @return string
     */
    String getNameByNum(@Param("groupNum") Long groupNum);

    /**
     *  通过群id得到群昵称
     * @author xiayujia
     * @param groupId 群id
     * @return string
     */
    String getNameById(@Param("groupId") Long groupId);

    /**
     * 通过群号或者群昵称得到列表
     * @param userId 用户id
     * @param groupNum 群号
     * @param groupName 群昵称
     * @return GroupManagerDAO
     */
    List<GroupManagerDAO> getGroupAll(@Param("userId") Long userId,@Param("groupNum") Long groupNum,@Param("groupName")String groupName);

    /**
     * 通过群号或者群昵称得到自己群的列表
     * @param userId 用户id
     * @param groupNum 群号
     * @param groupName 群昵称
     * @return GroupManagerVO
     */
    List<GroupManagerVO> getGroup(@Param("userId") Long userId,@Param("groupNum") Long groupNum,@Param("groupName")String groupName);

    /**
     * 通过用户身份获取群组名
     * @author xiayujia
     * @Param userId 用户id
     * @Param("userIdentity") String 普通人
     * @return String
     */
    List<GroupManagerDAO> getGroupNameByIdentity(@Param("userIdentity") String userIdentity,@Param("userId") Long userId);
}
